# -*- coding: UTF-8 -*-
# 作者： 磊
# @Time：2022/5/5
import json
import random
import pytest
from Demo06.common.request_util import RequestsUtil
from Demo06.common.yaml_util import write_extract_yaml, read_extract_yaml

'''
1、替换值 通过{{.....}}
3、增加 test_query_token
'''
class TestSecondRequest6:
    access_token=""
    def test_get_toke(self):
        url="/cgi-bin/token"
        params={
            'appid': 'wx74a8627810cfa308',
            'secret': 'e40a02f9d79a8097df497e6aaf93ab80',
            'grant_type': 'client_credential'
        }
        res=RequestsUtil('base','base_gzh_url').send_request(method="get",url=url,params=params)
        return_data=res.json()
        # 返回字典格式数据
        # 写入的应该是键值对
        write_extract_yaml({"access_token":return_data['access_token']})


    def test_query_token(self):
        url="/cgi-bin/tags/get?access_token"
        params ={
            "access_token": "{{access_token}}"
        }
        res=RequestsUtil('base','base_gzh_url').send_request(method="get",url=url,params=params)
        return_data = res.json()
        # print(return_data)

    def test_post_edit(self):
        # url="/cgi-bin/tags/update?access_token="+read_extract_yaml("access_token")+""
        #不使用上面那种方法的原因是应为，不能再yml文件中使用函数，而{{}}，为了在yaml文件中更好的使用
        url = "/cgi-bin/tags/update?access_token={{access_token}}"

        data = {"tag":{"id":108,"name":"ms"+str(random.randint(10000,99999))}}
        #application/x-www-form-urlencoded   data传参  这里是嵌套的，不行
        #application/json                    json传参
        # json.dumps()  把json格式转换成字符串
        # json.loads()  把字符串转换成字典
        res=RequestsUtil('base','base_gzh_url').send_request(method="get",url=url,data=json.dumps(data)) # 这个的data可以转换成json.dumps(data)，在通过data进行传参


    def test_file_up(self):
        url="/cgi-bin/media/uploadimg?access_token={{access_token}}"
        data={
            "media":open(r"E:\shu.png","rb")
        }
        res = RequestsUtil('base','base_gzh_url').send_request(method="get", url=url, files=data)


if __name__ == '__main__':
        pytest.main(['-vs',"test09.py"])

